/*
  Part of the MasterTool3D project - http://code.google.com/p/master-tool-3d

  Copyright (c) 2011 Ingo Pueschl

  This library is free software; you can redistribute it and/or
  modify it under the terms of the GNU Lesser General Public
  License as published by the Free Software Foundation, version 2.1.

  This library is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  Lesser General Public License for more details.

  You should have received a copy of the GNU Lesser General
  Public License along with this library; if not, write to the
  Free Software Foundation, Inc., 59 Temple Place, Suite 330,
  Boston, MA  02111-1307  USA
*/

package techjit.util;

public class RuntimeParams {
	public enum AuthorsEnum {
		RELEASE, MINE, CS, ER, HK, IP, JR, TH, TM
	}

	public enum ReleaseEnum {
		PROTOTYPE, RELEASE
	}

	public static ReleaseEnum release = ReleaseEnum.PROTOTYPE;

	// <author>
	public static boolean AUTHOR__CS = false;
	public static boolean AUTHOR__ER = false;
	public static boolean AUTHOR__HK = false;
	public static boolean AUTHOR__IP = false;
	public static boolean AUTHOR__JR = false;
	public static boolean AUTHOR__TM = false;
	public static boolean AUTHOR__TH = false;
	// </author>

	// <final.colors>
	// black, gray, white (final, sorted by value)
	public static final int COLOR__BLACK = 0xFF000000;
	public static final int COLOR__GRAY = 0xFF777777;
	public static final int COLOR__WHITE = 0xFFFFFFFF;

	// red, green, blue (final, sorted by RGB semantics)
	public static final int COLOR__RED = 0xFFFF0000;
	public static final int COLOR__GREEN = 0xFF00FF00;
	public static final int COLOR__BLUE = 0xFF0000FF;

	public static final int COLOR__DIRTY_RED = 0xFFFF7777;
	public static final int COLOR__DIRTY_GREEN = 0xFF77FF77;
	public static final int COLOR__DIRTY_BLUE = 0xFF7777FF;

	public static final int COLOR__DARK_RED = 0xFF770000;
	public static final int COLOR__DARK_GREEN = 0xFF007700;
	public static final int COLOR__DARK_BLUE = 0xFF000077;

	public static final int COLOR__GREENISH_RED = 0xFFFF7700;
	public static final int COLOR__BLUEISH_RED = 0xFFFF0077;
	public static final int COLOR__REDISH_GREEN = 0xFF77FF00;

	public static final int COLOR__BLUEISH_GREEN = 0xFF00FF77;
	public static final int COLOR__REDISH_BLUE = 0xFF7700FF;
	public static final int COLOR__GREENISH_BLUE = 0xFF0077FF;

	// cyan, magenta, yellow (final)
	public static final int COLOR__CYAN = 0xFF00FFFF;
	public static final int COLOR__MAGENTA = 0xFFFF00FF;
	public static final int COLOR__YELLOW = 0xFFFFFF00;

	public static final int COLOR__DARK_CYAN = 0xFF007777;
	public static final int COLOR__DARK_MAGENTA = 0xFF770077;
	public static final int COLOR__DARK_YELLOW = 0xFF777700;

	public static final int COLOR__DIRTY_CYAN = 0xFF00FFFF;
	public static final int COLOR__DIRTY_MAGENTA = 0xFFFF00FF;
	public static final int COLOR__DIRTY_YELLOW = 0xFFFFFF00;
	// </final.colors>

	// <final.coordinateSystem>
	public static final float COORDINATE_SYSTEM_DRAWER__CONE_DIAMETER = .2f;
	public static final float COORDINATE_SYSTEM_DRAWER__CONE_LENGTH = .5f;
	public static final float COORDINATE_SYSTEM_DRAWER__DIAMETER_OF_UNIT_CROSS = .5f;
	public static final int COORDINATE_SYSTEM_DRAWER__X_AXIS_COLOR = COLOR__RED;
	public static final int COORDINATE_SYSTEM_DRAWER__Y_AXIS_COLOR = COLOR__GREEN;
	public static final int COORDINATE_SYSTEM_DRAWER__Z_AXIS_COLOR = COLOR__BLUE;
	// </final.coordinateSystem>

	// <final.coordinateSystem.worldSystem>
	public static final float WORLD_SYSTEM__COORDINATE_SYSTEM_DEFAULT_MIN_UNITS = -3.5f;
	public static final float WORLD_SYSTEM__COORDINATE_SYSTEM_DEFAULT_MAX_UNITS = 6.5f;
	// </final.coordinateSystem.worldSystem>

	// <final.gfx>
	public static final int GFX__FIRST_ID = 1;
	// </final.gfx>

	// <assembler>
	public static boolean ASSEMBLER__CREATE_PACKAGES = true;
	public static boolean ASSEMBLER__CREATE_CLASSES = true;
	public static boolean ASSEMBLER__CREATE_INTERFACES = true;
	public static boolean ASSEMBLER__CREATE_CONSTRUCTORS = true;
	public static boolean ASSEMBLER__CREATE_METHODS = true;
	public static boolean ASSEMBLER__CREATE_FIELDS = true;
	public static boolean ASSEMBLER__CREATE_PACKAGE_LABELS = true;
	public static boolean ASSEMBLER__CREATE_CLASS_LABELS = true;
	public static boolean ASSEMBLER__CREATE_INTERFACE_LABELS = true;
	public static boolean ASSEMBLER__CREATE_CONSTRUCTOR_LABELS = true;
	public static boolean ASSEMBLER__CREATE_METHOD_LABELS = true;
	public static boolean ASSEMBLER__CREATE_FIELD_LABELS = true;
	// </assembler>

	// <collapsing>
	public static boolean COLLAPSING__PACKAGES_EXCEPT_TOP = false;
	public static boolean COLLAPSING__CLASSES = false;
	public static boolean COLLAPSING__METHODS = false;
	// </collapsing>

	// <coordinateSystem.worldSystem>
	public static float WORLD_SYSTEM__COORDINATE_SYSTEM_MAX_X_UNITS = WORLD_SYSTEM__COORDINATE_SYSTEM_DEFAULT_MAX_UNITS;
	public static float WORLD_SYSTEM__COORDINATE_SYSTEM_MAX_Y_UNITS = WORLD_SYSTEM__COORDINATE_SYSTEM_DEFAULT_MAX_UNITS;
	public static float WORLD_SYSTEM__COORDINATE_SYSTEM_MAX_Z_UNITS = WORLD_SYSTEM__COORDINATE_SYSTEM_DEFAULT_MAX_UNITS;
	public static float WORLD_SYSTEM__COORDINATE_SYSTEM_MIN_X_UNITS = WORLD_SYSTEM__COORDINATE_SYSTEM_DEFAULT_MIN_UNITS;
	public static float WORLD_SYSTEM__COORDINATE_SYSTEM_MIN_Y_UNITS = WORLD_SYSTEM__COORDINATE_SYSTEM_DEFAULT_MIN_UNITS;
	public static float WORLD_SYSTEM__COORDINATE_SYSTEM_MIN_Z_UNITS = WORLD_SYSTEM__COORDINATE_SYSTEM_DEFAULT_MIN_UNITS;
	// </coordinateSystem.worldSystem>

	// <drawing>
	public static int DRAWING__SWE_ELEMENT_STYLE = 1;

	public static int DRAWING__FILL_COLOR__LABELS = 0xFF222222;

	public static int DRAWING__STYLE2__ALPHA = 255;

	public static int DRAWING__SPHERE_SIZE___BIG = 5;
	public static int DRAWING__SPHERE_SIZE___MIDDLE = 4;
	public static int DRAWING__SPHERE_SIZE___SMAL = 1;
	public static int DRAWING__CONE_SIZE = 4;

	public static int DRAWING__TEXT_ENABLE = 1;

	// </drawing>

	// <example>
	public static int EXAMPLE__NUMBER = 1;
	// 0 = EXAMPLE, 1 = FILE, 2 = MANUAL
	public static int EXAMPLE__ASSEMBLER_MODE = 1;
	// </example>

	// <gfx.camera>
	public static boolean CAMERA__USE_PEASY_CAM = true;
	public static boolean CAMERA__NO_CAM = false;
	// </gfx.camera>

	// <gfx.util>
	public static int CONE_DRAWER__CONE_DETAIL = 30;
	// </gfx.util>

	// <logging>
	public static boolean LOGGING__LOG_FRAME_WHEN_INTERVAL_IS_REACHED = false;
	public static int LOGGING__INTERVAL_THAT_MUST_BE_REACHED_TO_LOG_FRAME = 100;
	// </logging>

	// <logging.GFX_Object>
	public static boolean GFX_OBJECT__LOG_CONSTRUCTOR_RESULT = false;
	public static boolean GFX_OBJECT__LOG_ADD_ELEMENTS_RESULT = false;

	public static boolean GFX_OBJECT__LOG_CHANGE_FIELDS_RESULT = false;

	public static boolean GFX_OBJECT__LOG_ARRANGEMENT_RESULT = false;
	public static boolean GFX_OBJECT__LOG_DRAWING_RESULT = false;
	// </logging.GFX_Object>

	// <model>
	public static String MODEL__EXISTING_XML_FILE = "";
	public static String MODEL__PATH_TO_SOFTWARE_INPUT_ROOT_FOLDER = "SoftwareVisualizer/src/";
	public static boolean MODEL__USE_ABSOLUTE_PATH = false;
	public static boolean MODEL__USE_EXISTING_STRING = false;
	public static boolean MODEL__USE_EXISTING_XML_FILE = false;

	public static String MODEL__RELATIVE_PATH_TO_OUTPUT_XML = "SoftwareVisualizer/output/";
	// </model>

	// <navi>
	public static boolean NAVI__ONLY_ON_NODES = true;
	// </navi>

	// <parser>
	public static boolean PARSER__READ_CLASSES = true;
	public static boolean PARSER__READ_METHODS = true;
	public static boolean PARSER__READ_FIELDS = true;
	public static boolean PARSER__READ_NAMES = true;
	public static boolean PARSER__READ_CLASS_ATTRIBUTES = true;
	public static boolean PARSER__READ_METHOD_ATTRIBUTES = true;
	public static boolean PARSER__READ_FIELD_ATTRIBUTES = true;
	public static boolean PARSER__READ_LINES_OF_CODE = true;
	public static boolean PARSER__READ_SIZE_IN_BYTES = true;
	// </parser>

	// <processing_sketch>
	public static int SKETCH__INITIAL_APPLET_WIDTH = 1000;
	public static int SKETCH__INITIAL_APPLET_HEIGHT = 500;

	public static int SKETCH__BACKGROUND_COLOR = 0xFF000000;

	public static boolean SKETCH__ENABLE_SMOOTHING = false;
	public static int SKETCH__FRAME_RATE = 60;
	// </processing_sketch>

	// <show>
	public static boolean SHOW__WORLD_COORDINATE_SYSTEM = false;
	public static boolean SHOW__RELATIVE_COORDINATE_SYSTEMS = false;
	public static boolean SHOW__LOCAL_COORDINATE_SYSTEMS = false;

	public static boolean SHOW__RELATIVE_000_BOX = false;
	public static boolean SHOW__RELATIVE_111_BOX = false;
	public static boolean SHOW__RELATIVE_BOUNDING_BOX = false;
	public static boolean SHOW__RELATIVE_BOUNDING_SPHERE = false;
	public static boolean SHOW__LOCAL_BOUNDING_BOX = false;
	public static boolean SHOW__ROTATION_OFFSET_BOX = false;

	public static boolean SHOW__CIRCLE_LAYOUT_TRACE = false;
	public static boolean SHOW__CIRCLE_LAYOUT_TRACE_CIRCLE = false;
	public static boolean SHOW__2D_OVERLAY = false;
	public static boolean SHOW__EDGES = false;
	public static boolean SHOW__3D_EDGES = false;

	public static boolean SHOW__SCENE_BOUNDING = false;
	public static boolean SHOW__LAYOUT_BOUNDING = false;
	public static boolean SHOW__SWE_ELEMENT_BOUNDING = false;

	public static boolean SHOW__CURRENT = true;
	public static int SHOW__BLINKING_INTERVAL = 80;

	public static boolean SHOW__SWE_ELEMENTS = true;

	public static boolean SHOW__LABELS = false;
	// </show>
}
